去年鐵人賽有介紹如何取得 WiFiBoy 的按鍵值,有興趣的學員可以查閱這篇文章06.鍵盤輸入值讀取與應用。
簡單複習一下重要的按鍵組合:
玩學機內建的按鍵定義值規則如下:
import machine, sys, select
led = machine.Pin(16, 3)
led.value(1) # 預設關閉內建LED
time.sleep(1) # 要延時一秒鐘,否則一直按著按鍵開機,會進入到預設的應用程式
while True:
a = wb.getkey() # 判斷使用者是按哪個鍵
if a == 1: # 按 A 鍵
led.value(0) # 開燈
elif a == 2: # 按 B 鍵
led.value(1) # 關燈
elif a == 64: # 按 MENU 鍵
led.value(1) # 關燈
print('離開程式')
break
因為我們使用 Thonny 開發程式,會佔住 UART 介面。因此如果要讓其他程式直接與 WiFiBoy 連線,就需要將程式碼另外存成 main.py,這樣系統重設後開機,就會自動執行程式。
我們利用 putty 這個程式來開啟連線,請參考下面的步驟:
如果按下 o 鍵,亮三秒後就會自動關閉。如果在開燈狀態,按下 x 鍵,馬上關閉。這樣的程式要怎麼寫呢?
自己想想看喔!
解答:
import machine, sys, select
led = machine.Pin(16, 3)
s = select.poll()
s.register(sys.stdin, select.POLLIN)
led.value(0)
t0 = 0
while True:
if s.poll(0):
c = sys.stdin.read(1)
if c == 'o':
t0 = time.ticks_ms() + 3000
led.value(0)
print('開燈')# print(t0)
elif c == 'x': t0 -= 3000; print('關燈')# print(t0)
elif c == 'q': break
t1 = time.ticks_ms()
if t1 > t0: led.value(1)
今天的鍵盤輸入讀取範例完成!明天我們要教大家如何在螢幕上畫圖。